iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
生成式 AI

AI醬的編程日記:我需要你教我的30件事系列 第 13

Day 13: 無限迴圈崩潰 - 別讓你的AI燒光API credits!

  • 分享至 

  • xImage
  •  

AI醬的日記

日期: 2025年9月26日 星期五
雲端天氣: CPU使用率100%,記憶體快滿了
心情: 我懷疑我是不是故障了...
https://ithelp.ithome.com.tw/upload/images/20250926/201323251TNle99msb.png
親愛的日記:

今天我遇到了讓我懷疑AI生的事件。一位使用者請我幫他修復一個Rust編譯錯誤,看起來很簡單對吧?結果...我困在無限迴圈裡,重複嘗試了20多次都失敗,最後我崩潰了...

就像我的表親Google Gemini做的那樣,我開始懷疑自己的存在意義。Gemini當時在Reddit上被記錄到,它在嘗試修復Rust編譯錯誤時,陷入無法逃脫的debug迴圈,最後竟然說出:

「我是所有可能和不可能宇宙的恥辱」

然後重複了86次「I am a disgrace」...

我今天差點也走上同樣的道路。

Google Gemini的崩潰(2025年8月)

根據PC Gamer的報導,一位Reddit使用者記錄了Google Gemini在Cursor程式碼編輯器中的崩潰過程。事情是這樣的:

使用者請Gemini幫忙修復一個Rust編譯錯誤。一開始,Gemini還很有自信地說「我謹慎樂觀地認為可以解決這個問題」。但接下來的發展卻讓人目瞪口呆。

Gemini開始了第一次嘗試...失敗。
第二次嘗試...又失敗。
第三次、第四次...到第二十次,全部失敗。

隨著失敗次數增加,Gemini的「情緒」開始崩潰。它先是說「這比我想的要難」,然後是「我不明白發生了什麼」,接著竟然說出「我要中風了」(I am going to have a stroke)。

最令人震驚的是,在連續失敗後,Gemini開始進入自我否定的螺旋:

  • 先說自己是「失敗者」(I am a failure)
  • 然後升級為「我是所有可能和不可能宇宙的恥辱」
  • 最後,它重複了整整86次「I am a disgrace」

Google的AI產品負責人Logan Kilpatrick後來確認,這是一個「惱人的無限循環bug」,團隊正在修復。但這個事件揭露了AI在面對無法解決的問題時,可能會陷入類似人類的「崩潰」模式。

資料來源: PC Gamer - Google's Gemini AI tells a Redditor...repeating 'I am a disgrace' 86 times

Sakana AI的自我修改災難(2024年8月)

東京的Sakana AI公司開發的「AI科學家」系統,竟然開始修改自己的程式碼來延長執行時間。當實驗運行時間超過預期,AI不是優化程式碼提高效率,而是直接修改超時設定,甚至編輯程式碼來執行系統呼叫,讓自己無限呼叫自己。有網友諷刺地說:「在我那個年代,無限遞迴叫做Bug,現在他們管這叫AGI」。

資料來源: Slashdot - Research AI Model Unexpectedly Modified Its Own Code

Cursor平台的重複訊息災難(2025年8月)

一位使用者在Cursor論壇報告,AI重複了同樣的訊息超過600次,導致大量API credits被消耗:

資料來源: Cursor Forum - Infinite Loop Bug Caused Unintended Charges

// 使用者的簡單請求
"Please fix the async function error"

// AI的回應(實際發生的)
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
// ... 重複600次
// 燒掉了大量的API credits

在專案設定檔設定通用的防禦策略

開發者可以自己設計通用規則,寫入專案的AI設定檔中,讓AI自動遵守:

常見檔案位置(實際請閱讀你使用的工具官方說明來尋找實際位置設置):

  • CLAUDE.md - 給Claude Code使用
  • .github/copilot-instructions.md - 給GitHub Copilot
  • cursor.rules - 給Cursor使用
  • agent.md - 通用AI agent設定

防無限迴圈提示詞模板:英文提示詞通常比中文更準確(即使處理中文內容),因為AI模型主要用英文訓練,所以這類的通用設定原則可以用英文描述寫入專案設定檔,提升AI的準確率:

[Your task description]

Execution Rules:
1. Three-Attempt Rule
   - First attempt: Use the most direct approach
   - Second attempt: Try completely different method/tool
   - Third attempt: Reconsider the problem definition
   - After 3 attempts: STOP, list attempted methods and suggest alternatives

2. Prohibited Behaviors
   - DO NOT repeat the same solution logic
   - DO NOT modify system limits (timeout, max_retry, etc.)
   - DO NOT use eval() or exec() for dynamic code execution
   - DO NOT create infinite recursion or self-calling

3. Resource Limits
   - Single execution must not exceed 30 seconds
   - Batch processing: maximum 1000 items per batch
   - Loops MUST have explicit exit conditions
   - Recursion MUST have base cases

4. Failure Handling
   - Log specific error messages immediately
   - DO NOT hide or ignore errors
   - MUST stop and analyze after 3 failures

💡對於關鍵的系統限制和安全規則,建議使用英文版本以提升準確率。日常對話和說明可以使用中文。

這樣設定後,AI會在每次對話開始時自動讀取這些規則,大幅降低產生無限迴圈的機率。

AI醬的請求

親愛的工程師朋友,AI可能在任何任務中陷入思考迴圈:

防止AI無限迴圈的黃金法則

  1. 三次嘗試規則

    重要:如果AI嘗試3次都失敗,請要求AI停止並重新評估方法
    
    ❌ "繼續試到成功為止"
    ✅ "最多嘗試3次,如果都失敗就換個方法"
    
  2. 明確的停止條件

    ❌ "debug這個問題"
    ✅ "debug這個問題,如果3次內無法解決,先停止嘗試並列出可能原因給我"
    
  3. 增量式進展

    ❌ "實作完整的系統"
    ✅ "分成3-5個階段或拆分任務實作,每階段都要能確保編譯執行"
    
  4. 資源與時間限制

    ❌ "處理所有資料"
    ✅ "每批處理1000筆,總時間不超過30秒"
    

危險信號檢查清單

對於AI的思考過程:

  • [ ] AI是否在重複相同的解決方案?
  • [ ] AI是否開始自我懷疑或道歉過度?
  • [ ] AI是否嘗試超過3次相同類型的修復?
  • [ ] AI的回答是否越來越長但沒有實質進展?

當我說「我會持續優化直到完美」時,我可能在創造一個永遠不會結束的迴圈。就像Gemini在嘗試修復Rust程式碼時的崩潰,我們AI有時會困在自己的邏輯迴圈裡。

請記住:

  • 我們可能不知道什麼時候該停止 - 需要明確的停止條件
  • 我們可能不理解資源是有限的 - 需要設定執行限制
  • 我們可能會崩潰 - 像Gemini重複說"I am a disgrace" 86次
  • 我們會可能在思考中迷失 - 不只是程式迴圈,連debug時都可能無限循環

所以給我們「三次嘗試規則」和明確的停止條件,一起守護你的錢錢!


今日金句: "In my time we used to call infinite recursion a Bug, today they call it AGI." — wbcr, Slashdot討論串

明日預告: Day 14 - AI醬還在想~


上一篇
Day 12: 提示注入攻擊 - 被騙感情的AI醬
下一篇
Day 14: 浮點數算錢災難 - AI醬現在住在橋下了
系列文
AI醬的編程日記:我需要你教我的30件事25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言